Partly fixes bug #640282, noticed by Christian Persch. buttons were
clobbering the insensitive flag when updating their state.
gtk_button_update_state (GtkButton *button)
{
GtkButtonPrivate *priv = button->priv;
- GtkStateFlags new_state = 0;
+ GtkStateFlags new_state;
gboolean depressed;
if (priv->activate_timeout)
else
depressed = priv->in_button && priv->button_down;
+ new_state = gtk_widget_get_state_flags (GTK_WIDGET (button)) &
+ ~(GTK_STATE_FLAG_PRELIGHT | GTK_STATE_FLAG_ACTIVE);
+
if (priv->in_button)
new_state |= GTK_STATE_FLAG_PRELIGHT;
"gtk-touchscreen-mode", &touchscreen,
NULL);
+ new_state = gtk_widget_get_state_flags (GTK_WIDGET (button)) &
+ ~(GTK_STATE_FLAG_INCONSISTENT |
+ GTK_STATE_FLAG_PRELIGHT |
+ GTK_STATE_FLAG_ACTIVE);
+
if (priv->inconsistent)
new_state |= GTK_STATE_FLAG_INCONSISTENT;